package com.octopus.optiworks.model;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

@SuppressWarnings("serial")
@Entity
@Table
public class StepSpec implements Serializable{
	
	public static final String OPERATION_NUM_NA		= "N/A";
	public static final String OPERATION_NUM_EQ		= "=";
	public static final String OPERATION_NUM_NOEQ	= "!=";
	public static final String OPERATION_NUM_LT		= "<";
	public static final String OPERATION_NUM_MT		= ">";
	public static final String OPERATION_NUM_NOLT	= ">=";
	public static final String OPERATION_NUM_NOMT	= "<=";
	public static final String OPERATION_STR_NA		= "N/A";
	public static final String OPERATION_STR_EQ		= "is";
	public static final String OPERATION_STR_NOEQ	= "isn't";
	
	private Long id;
	
	private String name;
	
	private Long step10_1DataId;
	
	private Long step10_1OperationId;
	
	private Step10_1Data step10_1Data;
	
	private Step10_1Data step10_1Operation;
	
	private String description;
	
	private Long step10_2DataId;
	
	private Long step10_2OperationId;
	
	private Step10_2Data step10_2Data;
	
	private Step10_2Data step10_2Operation;
	
	private Long step30_2DataId;
	
	private Long step30_2OperationId;
	
	private Step30_2Data step30_2Data;
	
	private Step30_2Data step30_2Operation;
	
	private Long step80DataId;
	
	private Long step80OperationId;
	
	private Step80Data step80Data;
	
	private Step80Data step80Operation;
	
	private Long step140_1DataId;
	
	private Long step140_1OperationId;
	
	private Step140_1Data step140_1Data;
	
	private Step140_1Data step140_1Operation;
	
	private Long step140_2DataId;
	
	private Long step140_2OperationId;
	
	private Step140_2Data step140_2Data;
	
	private Step140_2Data step140_2Operation;
	
	private Long step160DataId;
	
	private Long step160OperationId;
	
	private Step160Data step160Data;
	
	private Step160Data step160Operation;
	
	private Long step170_1DataId;
	
	private Long step170_1OperationId;
	
	private Step170_1Data step170_1Data;
	
	private Step170_1Data step170_1Operation;
	
	private Long step170_2DataId;
	
	private Long step170_2OperationId;
	
	private Step170_2Data step170_2Data;
	
	private Step170_2Data step170_2Operation;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

    @Basic(optional=false)
    @Column(length=100, unique=true)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

    @Column(length=255)
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}
	
	@Column
	public Long getStep10_1DataId() {
		return step10_1DataId;
	}

	public void setStep10_1DataId(Long step10_1DataId) {
		this.step10_1DataId = step10_1DataId;
	}

	@Column
	public Long getStep10_1OperationId() {
		return step10_1OperationId;
	}

	public void setStep10_1OperationId(Long step10_1OperationId) {
		this.step10_1OperationId = step10_1OperationId;
	}

	@Transient
	public Step10_1Data getStep10_1Data() {
		return step10_1Data;
	}

	public void setStep10_1Data(Step10_1Data step10_1Data) {
		this.step10_1Data = step10_1Data;
	}

	@Transient
	public Step10_1Data getStep10_1Operation() {
		return step10_1Operation;
	}

	public void setStep10_1Operation(Step10_1Data step10_1Operation) {
		this.step10_1Operation = step10_1Operation;
	}

	@Column
	public Long getStep10_2DataId() {
		return step10_2DataId;
	}

	public void setStep10_2DataId(Long step10_2DataId) {
		this.step10_2DataId = step10_2DataId;
	}

	@Column
	public Long getStep10_2OperationId() {
		return step10_2OperationId;
	}

	public void setStep10_2OperationId(Long step10_2OperationId) {
		this.step10_2OperationId = step10_2OperationId;
	}

	@Transient
	public Step10_2Data getStep10_2Data() {
		return step10_2Data;
	}

	public void setStep10_2Data(Step10_2Data step10_2Data) {
		this.step10_2Data = step10_2Data;
	}

	@Transient
	public Step10_2Data getStep10_2Operation() {
		return step10_2Operation;
	}

	public void setStep10_2Operation(Step10_2Data step10_2Operation) {
		this.step10_2Operation = step10_2Operation;
	}

	@Column
	public Long getStep30_2DataId() {
		return step30_2DataId;
	}

	public void setStep30_2DataId(Long step30_2DataId) {
		this.step30_2DataId = step30_2DataId;
	}

	@Column
	public Long getStep30_2OperationId() {
		return step30_2OperationId;
	}

	public void setStep30_2OperationId(Long step30_2OperationId) {
		this.step30_2OperationId = step30_2OperationId;
	}

	@Transient
	public Step30_2Data getStep30_2Data() {
		return step30_2Data;
	}

	public void setStep30_2Data(Step30_2Data step30_2Data) {
		this.step30_2Data = step30_2Data;
	}

	@Transient
	public Step30_2Data getStep30_2Operation() {
		return step30_2Operation;
	}

	public void setStep30_2Operation(Step30_2Data step30_2Operation) {
		this.step30_2Operation = step30_2Operation;
	}

	@Column
	public Long getStep80DataId() {
		return step80DataId;
	}

	public void setStep80DataId(Long step80DataId) {
		this.step80DataId = step80DataId;
	}

	@Column
	public Long getStep80OperationId() {
		return step80OperationId;
	}

	public void setStep80OperationId(Long step80OperationId) {
		this.step80OperationId = step80OperationId;
	}

	@Transient
	public Step80Data getStep80Data() {
		return step80Data;
	}

	public void setStep80Data(Step80Data step80Data) {
		this.step80Data = step80Data;
	}
	
	@Transient
	public Step80Data getStep80Operation() {
		return step80Operation;
	}

	public void setStep80Operation(Step80Data step80Operation) {
		this.step80Operation = step80Operation;
	}

	@Column
	public Long getStep140_1DataId() {
		return step140_1DataId;
	}

	public void setStep140_1DataId(Long step140_1DataId) {
		this.step140_1DataId = step140_1DataId;
	}

	@Column
	public Long getStep140_1OperationId() {
		return step140_1OperationId;
	}

	public void setStep140_1OperationId(Long step140_1OperationId) {
		this.step140_1OperationId = step140_1OperationId;
	}

	@Transient
	public Step140_1Data getStep140_1Data() {
		return step140_1Data;
	}

	public void setStep140_1Data(Step140_1Data step140_1Data) {
		this.step140_1Data = step140_1Data;
	}

	@Transient
	public Step140_1Data getStep140_1Operation() {
		return step140_1Operation;
	}

	public void setStep140_1Operation(Step140_1Data step140_1Operation) {
		this.step140_1Operation = step140_1Operation;
	}

	@Column
	public Long getStep140_2DataId() {
		return step140_2DataId;
	}

	public void setStep140_2DataId(Long step140_2DataId) {
		this.step140_2DataId = step140_2DataId;
	}

	@Column
	public Long getStep140_2OperationId() {
		return step140_2OperationId;
	}

	public void setStep140_2OperationId(Long step140_2OperationId) {
		this.step140_2OperationId = step140_2OperationId;
	}

	@Transient
	public Step140_2Data getStep140_2Data() {
		return step140_2Data;
	}

	public void setStep140_2Data(Step140_2Data step140_2Data) {
		this.step140_2Data = step140_2Data;
	}

	@Transient
	public Step140_2Data getStep140_2Operation() {
		return step140_2Operation;
	}

	public void setStep140_2Operation(Step140_2Data step140_2Operation) {
		this.step140_2Operation = step140_2Operation;
	}

	@Column
	public Long getStep160DataId() {
		return step160DataId;
	}

	public void setStep160DataId(Long step160DataId) {
		this.step160DataId = step160DataId;
	}

	@Column
	public Long getStep160OperationId() {
		return step160OperationId;
	}

	public void setStep160OperationId(Long step160OperationId) {
		this.step160OperationId = step160OperationId;
	}

	@Transient
	public Step160Data getStep160Data() {
		return step160Data;
	}

	public void setStep160Data(Step160Data step160Data) {
		this.step160Data = step160Data;
	}

	@Transient
	public Step160Data getStep160Operation() {
		return step160Operation;
	}

	public void setStep160Operation(Step160Data step160Operation) {
		this.step160Operation = step160Operation;
	}

	@Column
	public Long getStep170_1DataId() {
		return step170_1DataId;
	}

	public void setStep170_1DataId(Long step170_1DataId) {
		this.step170_1DataId = step170_1DataId;
	}

	@Column
	public Long getStep170_1OperationId() {
		return step170_1OperationId;
	}

	public void setStep170_1OperationId(Long step170_1OperationId) {
		this.step170_1OperationId = step170_1OperationId;
	}

	@Transient
	public Step170_1Data getStep170_1Data() {
		return step170_1Data;
	}

	public void setStep170_1Data(Step170_1Data step170_1Data) {
		this.step170_1Data = step170_1Data;
	}

	@Transient
	public Step170_1Data getStep170_1Operation() {
		return step170_1Operation;
	}

	public void setStep170_1Operation(Step170_1Data step170_1Operation) {
		this.step170_1Operation = step170_1Operation;
	}

	@Column
	public Long getStep170_2DataId() {
		return step170_2DataId;
	}

	public void setStep170_2DataId(Long step170_2DataId) {
		this.step170_2DataId = step170_2DataId;
	}

	@Column
	public Long getStep170_2OperationId() {
		return step170_2OperationId;
	}

	public void setStep170_2OperationId(Long step170_2OperationId) {
		this.step170_2OperationId = step170_2OperationId;
	}

	@Transient
	public Step170_2Data getStep170_2Data() {
		return step170_2Data;
	}

	public void setStep170_2Data(Step170_2Data step170_2Data) {
		this.step170_2Data = step170_2Data;
	}

	@Transient
	public Step170_2Data getStep170_2Operation() {
		return step170_2Operation;
	}

	public void setStep170_2Operation(Step170_2Data step170_2Operation) {
		this.step170_2Operation = step170_2Operation;
	}
}
